﻿using H.Types;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace H.Hands
{

    /// <summary>
    /// 表示一个鼠标按钮的实例
    /// </summary>
    public interface IMouse
    {
        /// <summary>
        /// 鼠标单击
        /// </summary>
        /// <returns>是否执行成功</returns>
        bool Click();

        /// <summary>
        /// 鼠标移动到某个屏幕坐标后单击
        /// </summary>
        /// <param name="pos">点击坐标</param>
        /// <returns>是否执行成功</returns>
        bool Click(Pos pos);

        /// <summary>
        /// 鼠标移动到某个屏幕区域内并单击
        /// </summary>
        /// <param name="rect">屏幕区域</param>
        /// <returns>是否执行成功</returns>
        bool Click(Rect rect);

        /// <summary>
        /// 双击鼠标
        /// </summary>
        /// <returns></returns>
        bool DoubleClick();

        /// <summary>
        /// 鼠标移动到某个屏幕坐标后双击
        /// </summary>
        /// <param name="pos">点击坐标</param>
        /// <returns>是否执行成功</returns>
        bool DoubleClick(Pos pos);

        /// <summary>
        /// 鼠标移动到某个屏幕区域内并双击
        /// </summary>
        /// <param name="rect">屏幕区域</param>
        /// <returns>是否执行成功</returns>
        bool DoubleClick(Rect rect);

        /// <summary>
        /// 鼠标弹起
        /// </summary>
        /// <returns>是否执行成功</returns>
        bool Up();

        /// <summary>
        /// 鼠标按下
        /// </summary>
        /// <returns>是否执行成功</returns>
        bool Down();
    }
}
